> 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.

# Resolve Document

POST https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument
Content-Type: application/x-www-form-urlencoded

Resolves an entire chart or note document — every MEDCIN finding found with a `MedcinId` attribute, no matter how deeply nested — into fully built note terms in a single pass. The ResolveDocument API (POST /Quippe/NoteBuilder/ResolveDocument) runs the whole document through the same NoteBuilder pipeline used to render a live note, expanding each finding into its display text, node key, term type, and phrasing in place. 

 Common uses include re-resolving a saved or imported chart document after it's loaded outside the normal note-building flow, and resolving a large list of findings with different MEDCIN metadata properties, like prefix and modifier, associated with them. 

 POST /Quippe/NoteBuilder/ResolveDocument 

Use this endpoint to resolve an entire chart document at once. To resolve a single finding, use [/Quippe/NoteBuilder/Resolve](/api-reference/rest/get-quippe-note-builder-resolve). To resolve a flat list of MEDCIN IDs instead of a chart document, use [/Quippe/NoteBuilder/ResolveTerms](/api-reference/rest/get-quippe-note-builder-resolve-terms).

Reference: https://docs.medicomp.com/api-reference/rest/post-quippe-note-builder-resolve-document

## 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

- `PrePopulate` (boolean, optional) — When `true` and the document's root element is a `Document` flagged with `AutoPopulate`, the registered `Quippe.INoteAutoPopulationService` is invoked before resolution to fill in dynamic content (such as data pulled from an EHR) for any auto-populate groups in the template.
- `TermProperties` (string, optional) — Comma-separated list of additional term properties to be included with each term in the result list.
- `PatientId` (string, optional) — The patient's identifier in the EHR.
- `EncounterTime` (string, optional) — The date of the encounter that this operation is for.
- `GroupingFlags` (enum, optional) — Options to control default group assignments for findings.
  - Allowed values: `None`, `NoTestResults`, `TestsToResults`, `SymptomsToHPI`
- `ResolvePhrases` (boolean, optional) — Flag indicating whether the text phrases used to render a given finding for the user should be returned.
- `BuilderVersion` (integer, optional) — Controls how the note builder is instantiated to resolve terms. 1 will always use a `Quippe.NoteBuilder` object, while other values will instatiate a `Quippe.INoteBuilderService` instance from the list of registered data services, allowing for customization of the term resolution process.
- `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.

### Body (application/x-www-form-urlencoded)

- `Data` (list of object, required)
  - `MedcinId` (integer, required)
  - `Prescription` (object, optional)
    - `SIGs` (list of object, optional)
      - `Timing` (object, optional)
        - `Sequencing` (integer, optional)
        - `Occurrence` (integer, optional)
        - `Occurrence2` (integer, optional)
        - `Interval` (double, optional)
        - `Interval2` (double, optional)
        - `IntervalUnit` (integer, optional)
        - `Repeat` (integer, optional)
        - `Repeat2` (integer, optional)
        - `Duration` (double, optional)
        - `Duration2` (double, optional)
        - `DurationUnit` (integer, optional)
        - `StartDate` (string, optional)
        - `EndDate` (string, optional)
        - `StartTime` (string, optional)
        - `EndTime` (string, optional)
        - `TimeOfDay` (integer, optional)
        - `Priority` (integer, optional)
        - `Note` (string, optional)
        - `Text` (string, optional)
        - `SourceText` (string, optional)
        - `AsNeeded` (boolean, optional, default: false)
      - `Sequence` (integer, optional)
      - `Quantity` (double, optional)
      - `Route` (string, optional)
      - `Site` (string, optional)
      - `Unit` (string, optional)
    - `id` (string, optional)
    - `Date` (string, optional)
    - `Amount` (double, optional)
    - `BrandName` (string, optional)
    - `Form` (string, optional)
    - `FormPackage` (string, optional)
    - `Generic` (string, optional)
    - `NDC` (string, optional)
    - `Note` (string, optional)
    - `NumberOfDays` (integer, optional)
    - `NumberOfRefills` (integer, optional)
    - `RxCUI` (string, optional)
    - `Strength` (double, optional)
    - `StrengthUnit` (string, optional)
  - `RelatedRecords` (object, optional)
    - `RecordLink` (object, optional)
      - `LinkType` (string, optional)
      - `Sequence` (integer, optional)
      - `RecordId` (string, optional)
      - `SourceId` (string, optional)
      - `TargetId` (string, optional)
      - `Relationship` (string, optional)
  - `Providers` (list of object, optional)
    - `id` (string, optional)
    - `Name` (string, optional)
    - `Role` (string, optional)
  - `CodeMaps` (list of object, optional)
    - `Qualifiers` (list of object, optional)
      - `Qualifiers` (list of object, optional)
      - `Code` (string, optional)
      - `Description` (string, optional)
      - `Relationship` (string, optional)
      - `TermType` (string, optional)
    - `Vocab` (string, optional)
    - `Code` (string, optional)
    - `Description` (string, optional)
    - `Version` (string, optional)
    - `AutoMapped` (boolean, optional, default: false)
    - `Expression` (string, optional)
    - `Relationship` (string, optional)
    - `TermType` (string, optional)
    - `GroupId` (string, optional)
    - `Priority` (string, optional)
  - `EMInfo` (object, optional)
    - `ChronicProblem` (boolean, optional, default: false)
    - `ActiveProblem` (boolean, optional, default: false)
    - `NewPatient` (boolean, optional, default: false)
    - `AdditionalWorkupPlanned` (boolean, optional, default: false)
    - `Risk` (integer, optional)
    - `Complexity` (integer, optional)
    - `Status` (string, optional)
    - `MedcinId` (integer, optional)
    - `MedcinIdOverride` (integer, optional)
  - `TimingComponents` (list of object, optional)
    - `Sequencing` (integer, optional)
    - `Occurrence` (integer, optional)
    - `Occurrence2` (integer, optional)
    - `Interval` (double, optional)
    - `Interval2` (double, optional)
    - `IntervalUnit` (integer, optional)
    - `Repeat` (integer, optional)
    - `Repeat2` (integer, optional)
    - `Duration` (double, optional)
    - `Duration2` (double, optional)
    - `DurationUnit` (integer, optional)
    - `StartDate` (string, optional)
    - `EndDate` (string, optional)
    - `StartTime` (string, optional)
    - `EndTime` (string, optional)
    - `TimeOfDay` (integer, optional)
    - `Priority` (integer, optional)
    - `Note` (string, optional)
    - `Text` (string, optional)
    - `SourceText` (string, optional)
    - `AsNeeded` (boolean, optional, default: false)
  - `id` (string, optional)
  - `Result` (enum, optional)
    - Allowed values: `A`, `N`
  - `Flag` (integer, optional, default: 0)
  - `Prefix` (string, optional)
  - `Modifier` (string, optional)
  - `Status` (string, optional)
  - `Onset` (string, optional)
  - `Duration` (string, optional) — A time string is used to represent time as a numeric value followed by a single character time unit. Possible time units are Y, M, W, D, H, N, S and I. Representing years, months, weeks, days, hours, minutes, seconds and milliseconds repectively.
  - `Episode` (string, optional)
  - `Value` (string, optional, default: )
  - `Unit` (string, optional, default: )
  - `Scale` (integer, optional, default: 0)
  - `NormalLow` (double, optional, default: 0)
  - `NormalHigh` (double, optional, default: 0)
  - `Note` (string, optional, default: )
  - `NarrativeGroup` (integer, optional, default: 0)
  - `Chapter` (integer, optional, default: 0)
  - `Specifier` (string, optional, default: )
  - `TimeRecorded` (string, optional)

## Response

### 200

Successful response

## Examples

**Request**

```json
{
  "Data": [
    {
      "MedcinId": 1
    }
  ]
}
```

**Response**

```json
{}
```

**SDK Code**

```python
import requests

url = "https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument"

payload = ""
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers, auth=("<username>", "<password>"))

print(response.json())
```

```javascript
const url = 'https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument';
const credentials = btoa("<username>:<password>");

const options = {
  method: 'POST',
  headers: {
    Authorization: `Basic ${credentials}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: new URLSearchParams('')
};

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"
	"net/http"
	"io"
)

func main() {

	url := "https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument"

	req, _ := http.NewRequest("POST", url, nil)

	req.SetBasicAuth("<username>", "<password>")
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")

	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/NoteBuilder/ResolveDocument")

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

request = Net::HTTP::Post.new(url)
request.basic_auth("<username>", "<password>")
request["Content-Type"] = 'application/x-www-form-urlencoded'

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.post("https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument")
  .basicAuth("<username>", "<password>")
  .header("Content-Type", "application/x-www-form-urlencoded")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument', [
  'form_params' => null,
  'headers' => [
    'Content-Type' => 'application/x-www-form-urlencoded',
  ],
    'auth' => ['<username>', '<password>'],
]);

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

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

var client = new RestClient("https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.POST);

request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

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

let headers = [
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/x-www-form-urlencoded"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://quippe.medicomp.com/api/Quippe/NoteBuilder/ResolveDocument")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

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()
```