> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.medicomp.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.medicomp.com/_mcp/server.

# Translate Item

GET https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem

Translates a medical code from one vocabulary to another (also called code mapping). Given a source vocabulary and code — for example SNOMED code 25064002 — and a target vocabulary such as ICD-10, the TranslateItem API returns the set of matching target codes along with the relationship of each match to the source (exact, broader, narrower, and so on). 

 Common uses include deriving billing codes from clinical documentation, converting terminology in interoperability payloads, and exploring how two vocabularies align. 

 GET /Quippe/Coding/TranslateItem 

Use this endpoint when you already have a source code. To find a code from free-text instead, use [/Quippe/Coding/Search/Search](/api-reference/rest/get-quippe-coding-search-search). To map every finding in a whole patient chart at once, use [/Quippe/Coding/ChartMap](/api-reference/rest/post-quippe-coding-chart-map).

Reference: https://docs.medicomp.com/api-reference/rest/get-quippe-coding-translate-item

## Authentication

- `Authorization` header (basic auth, required) — Login and password used to access quippe.medicomp.com. On-premise Quippe deployments can be configured to use whatever authentication and authorization your application is configured for, so basic authentication is used here to access the Quippe sandbox and is not a product requirement.
- `Authorization` header (bearer token, required) — JSON web token generated by a request to the [/Quippe/Security/Token](/api-reference/rest/get-quippe-security-token) web service endpoint in Quippe.

## Request

### Query parameters

- `SourceVocabulary` (string, required) — The vocabulary that `SourceCode` belongs to — the vocabulary you are translating from. Common values: `snomed`, `icd10` (ICD-10-CM), `icd10pcs`, `cpt`, `hcpcs`, `loinc`, `rxnorm`, `medcin`. When this is a MEDCIN vocabulary, the optional qualifier parameters (`Prefix`, `Status`, `Modifier`, `Result`, `Specifier`, `Value`, `Age`, `Sex`) are applied to the source code; otherwise they are ignored. The list of supported vocabularies can be retrieved from the [/Quippe/Coding/Vocabs](/api-reference/rest/get-quippe-coding-vocabs) endpoint.
- `SourceCode` (string, required) — The code to translate, expressed in the vocabulary named by `SourceVocabulary` — for example `25064002` when `SourceVocabulary` is `snomed`, or `E11.9` when it is `icd10`. MEDCIN source codes must be numeric; if `SourceVocabulary` is a MEDCIN vocabulary but this value is not numeric, the code is treated as a plain code from another vocabulary and the MEDCIN qualifier parameters (`Prefix`, `Status`, `Modifier`, `Result`, `Specifier`, `Value`, `Age`, `Sex`) are ignored. A code that exists in the source vocabulary but has no maps to the target — and a code that is not recognized at all — both return an empty `Map` element.
- `TargetVocabulary` (string, required) — The vocabulary to translate into — the vocabulary of the codes returned in each `Entry/@Code`. Common values: `icd10` (ICD-10-CM), `icd10pcs`, `cpt`, `hcpcs`, `snomed`, `loinc`, `rxnorm`. Note that `icd` is ICD-9-CM, not ICD-10 — use `icd10` for ICD-10-CM. Not every source/target pair has maps; a pair with no maps returns an empty `Map` element. The list of supported vocabularies can be retrieved from the [/Quippe/Coding/Vocabs](/api-reference/rest/get-quippe-coding-vocabs) endpoint.
- `Prefix` (string, optional) — Optional MEDCIN prefix qualifier for the source code — the prefix positions a finding in context, such as a family-history or "history of" framing. Applies only when SourceVocabulary is a MEDCIN vocabulary and SourceCode is numeric; ignored otherwise, and affects which target codes the translation produces.
- `Result` (string, optional) — Optional MEDCIN result qualifier for the source code — for example to indicate a positive vs. negative finding. Applies only when SourceVocabulary is a MEDCIN vocabulary and SourceCode is numeric; ignored otherwise.
- `Status` (string, optional) — Optional MEDCIN status qualifier for the source code — for example to mark a finding as absent, resolved, or historical rather than currently present. Applies only when SourceVocabulary is a MEDCIN vocabulary and SourceCode is numeric; ignored otherwise.
- `Modifier` (string, optional) — Optional MEDCIN modifier qualifier for the source code, refining the finding (for example laterality or severity). Applies only when SourceVocabulary is a MEDCIN vocabulary and SourceCode is numeric; ignored otherwise.
- `Specifier` (string, optional) — Optional MEDCIN specification string for the source code, carrying the finding's post-coordinated detail. Applies only when SourceVocabulary is a MEDCIN vocabulary and SourceCode is numeric; ignored otherwise.
- `Age` (integer, optional) — Optional patient age in minutes, used as translation context for age-specific MEDCIN source findings. MEDCIN expresses age in minutes for neonatal/pediatric precision; for example 1 year is about 525,960 minutes. Applies only to MEDCIN source codes. Defaults to 0 (no age context).
- `Sex` (string, optional) — Optional patient sex (M or F), used as translation context for sex-specific MEDCIN source findings. Applies only to MEDCIN source codes. Leave blank (default) for no sex context.
- `Value` (string, optional) — Optional test or measurement value for the source code — for example a numeric result attached to a MEDCIN finding that carries a value. Applies only to MEDCIN source codes. Defaults to none.
- `EncounterTime` (string, optional) — The optional encounter date and time associated with an item.
- `AutoGenerateMaps` (boolean, optional) — Indicates whether maps from qualified MEDCIN concepts should be automatically generated where applicable if no maps are available.
- `Limit` (integer, optional) — Limits the number of maps returned. Defaults to no limit.
- `RelationshipFilter` (string, optional) — Limits the maps to only those with the specified relationship.
- `DataFormat` (enum, optional) — Specifies how objects are encoded in the output
  - Allowed values: `Default`, `XML`, `JSON`, `JSF`
- `RequestId` (string, optional) — Optional value that can be used by clients to track multiple requests.
- `Culture` (string, optional) — Culture to use when handling the request. If not specified the default value configured on the server will be used.

## Response

### 200

Successful response

- `map` (object, optional)
  - `sourceVocabulary` (string, required)
  - `sourceCode` (string, required)
  - `targetVocabulary` (string, required)
  - `group` (list of object, optional)
    - `entry` (object, required)
      - `properties` (list of object, optional)
        - `name` (string, optional)
        - `value` (string, optional)
        - `category` (string, optional)
        - `sequence` (integer, optional)
      - `code` (string, optional)
      - `relationship` (string, optional)
      - `description` (string, optional)
      - `isCategory` (boolean, optional)
      - `preferred` (boolean, optional)
      - `termType` (string, optional)
      - `unreportable` (boolean, optional)
      - `statusId` (integer, optional)
      - `age` (string, optional)
      - `sex` (string, optional)
      - `value` (string, optional)
      - `specifier` (string, optional)
      - `prefix` (string, optional)
      - `modifier` (string, optional)
      - `status` (string, optional)
      - `result` (string, optional)
      - `mapQualifier` (string, optional)
      - `codePoint` (string, optional)
    - `id` (integer, optional)
    - `groupNumber` (integer, optional)
    - `codePoint` (string, optional)
  - `entry` (list of object, optional)
    - `properties` (list of object, optional)
      - `name` (string, optional)
      - `value` (string, optional)
      - `category` (string, optional)
      - `sequence` (integer, optional)
    - `code` (string, optional)
    - `relationship` (string, optional)
    - `description` (string, optional)
    - `isCategory` (boolean, optional)
    - `preferred` (boolean, optional)
    - `termType` (string, optional)
    - `unreportable` (boolean, optional)
    - `statusId` (integer, optional)
    - `age` (string, optional)
    - `sex` (string, optional)
    - `value` (string, optional)
    - `specifier` (string, optional)
    - `prefix` (string, optional)
    - `modifier` (string, optional)
    - `status` (string, optional)
    - `result` (string, optional)
    - `mapQualifier` (string, optional)
    - `codePoint` (string, optional)

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "map": {
    "sourceVocabulary": "snomed",
    "sourceCode": "25064002",
    "targetVocabulary": "icd10",
    "group": [
      {
        "entry": {
          "properties": [
            {
              "name": "MapType",
              "value": "ExactMatch",
              "category": "Mapping",
              "sequence": 1
            }
          ],
          "code": "R51.9",
          "relationship": "SameAs",
          "description": "Headache, unspecified",
          "isCategory": true,
          "preferred": true,
          "termType": "3",
          "unreportable": false,
          "statusId": 1,
          "age": "34164000",
          "sex": "M",
          "value": "10",
          "specifier": "None",
          "prefix": "PD",
          "modifier": "small",
          "status": "improving",
          "result": "N",
          "mapQualifier": "Primary",
          "codePoint": "0A00000000008110020010008A20041B"
        },
        "id": 155433,
        "groupNumber": 1,
        "codePoint": "0A00000000008110020010008A20041B"
      }
    ],
    "entry": [
      {
        "properties": [
          {
            "name": "MapType",
            "value": "ExactMatch",
            "category": "Mapping",
            "sequence": 1
          }
        ],
        "code": "R51.9",
        "relationship": "SameAs",
        "description": "Headache, unspecified",
        "isCategory": true,
        "preferred": true,
        "termType": "3",
        "unreportable": false,
        "statusId": 1,
        "age": "34164000",
        "sex": "M",
        "value": "10",
        "specifier": "None",
        "prefix": "PD",
        "modifier": "small",
        "status": "improving",
        "result": "N",
        "mapQualifier": "Primary",
        "codePoint": "0A00000000008110020010008A20041B"
      }
    ]
  }
}
```

**SDK Code**

```python
import requests

url = "https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem"

querystring = {"SourceVocabulary":"snomed","SourceCode":"25064002","TargetVocabulary":"icd10","Prefix":"FH","Result":"Positive","Status":"Active","Modifier":"Severe","Specifier":"Left side","Age":"525960","Sex":"F","Value":"7.5","EncounterTime":"2024-05-20T14:30:00Z","AutoGenerateMaps":"true","Limit":"5","RelationshipFilter":"SameAs","DataFormat":"JSON","RequestId":"req-12345","Culture":"en-US"}

payload = {}
headers = {
    "Content-Type": "application/json"
}

response = requests.get(url, json=payload, headers=headers, params=querystring, auth=("<username>", "<password>"))

print(response.json())
```

```javascript
const url = 'https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US';
const credentials = btoa("<username>:<password>");

const options = {
  method: 'GET',
  headers: {
    Authorization: `Basic ${credentials}`,
    'Content-Type': 'application/json'
  },
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("GET", url, payload)

	req.SetBasicAuth("<username>", "<password>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US")
  .basicAuth("<username>", "<password>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = [
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://quippe.medicomp.com/api/Quippe/Coding/TranslateItem?SourceVocabulary=snomed&SourceCode=25064002&TargetVocabulary=icd10&Prefix=FH&Result=Positive&Status=Active&Modifier=Severe&Specifier=Left+side&Age=525960&Sex=F&Value=7.5&EncounterTime=2024-05-20T14%3A30%3A00Z&AutoGenerateMaps=true&Limit=5&RelationshipFilter=SameAs&DataFormat=JSON&RequestId=req-12345&Culture=en-US")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```