Oystehr
Claim Submission

Claim Submission

Oystehr provides the ability to submit claims through the ClaimMD clearinghouse. Claims are assembled from the data in your FHIR database and sent as X12.

The Oystehr RCM service supports the following claim formats:

  • 837p (CMS-1500)
🚧
Claim Submission is currently in beta.

Data Required for Claim Submission

The Oystehr RCM service assembles the X12 representation of your claim based on the data stored in your FHIR database. The resources referenced on your Claim are queried dynamically at the time of claim submission. In general, only internal FHIR references are accepted (Practitioner/abcdef12-...), and contained resources will not be used.

Claim Required Fields

  • .id
  • .provider.reference
  • .facility.reference
  • .insurance[0].coverage.reference ("primary" coverage)
  • .diagnosis[0] ("primary" diagnosis)
  • .total.value
  • .item[0].locationCodeableConcept[system='http://www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set.html'].code
  • .item[*].careTeamSequence[0]
  • .item[*].productOrService[system='http://terminology.hl7.org/CodeSystem/HCPCS'].code
  • .item[*].net.value
  • .item[*].quantity.value
  • .item[*].diagnosisSequence
  • .item[*].servicePeriod.start
  • .extension[url='https://extensions.fhir.oystehr.com/rcm-claim-insurance-type'].valueString
  • .extension[url='https://extensions.fhir.oystehr.com/rcm-claim-provider-signature-indicator'].valueBoolean
  • .extension[url='https://extensions.fhir.oystehr.com/rcm-claim-release-of-information-code'].valueString

One of:

  • .diagnosis[0].diagnosisCodeableConcept[system='http://hl7.org/fhir/sid/icd-9-cm'].code
  • .diagnosis[0].diagnosisCodeableConcept[system='http://hl7.org/fhir/sid/icd-10-cm'].code

Coverage Required Fields

  • .payor[0].reference
  • .class[0].value
  • .class[0].name
  • .relationship.coding[system='http://terminology.hl7.org/CodeSystem/subscriber-relationship']
  • .subscriber.reference
  • .subscriberId

Organization (billing provider) Required Fields

  • .name
  • .address[0].line[0]
  • .address[0].city
  • .address[0].state
  • .address[0].postalCode
  • .identifier[type=('http://terminology.hl7.org/CodeSystem/v2-0203', 'NPI')]
  • .identifier[type=(''https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-secondary-identifier-type', 'ETIN')]
  • .telecom[system=phone]

Organization (payor) Required Fields

The Organization resources returned by the Oystehr RCM service payer list endpoints are guaranteed to have the required identifiers.

  • .name

One of:

  • .identifier[system='https://identifiers.fhir.oystehr.com/rcm-payer-id']
  • .identifier[coding=('http://terminology.hl7.org/CodeSystem/v2-0203', 'NIIP')]
  • .identifier[coding=('http://terminology.hl7.org/CodeSystem/v2-0203', 'PAYERID')]
  • .identifier[coding=('http://terminology.hl7.org/CodeSystem/v2-0203', 'XX')]
  • .identifier[coding=('http://terminology.hl7.org/CodeSystem/v2-0203', 'XV')]

Location (service facility) Required Fields

  • .name
  • .address[0].line[0]
  • .address[0].city
  • .address[0].state
  • .address[0].postalCode

Patient Required Fields

When the Coverage relationship coding is set to self, the Patient resource will be used for subscriber information

  • .name[use=official].family
  • .name[use=official].given[0]
  • .address[0].line[0]
  • .address[0].city
  • .address[0].state
  • .address[0].postalCode
  • .birthDate

RelatedPerson Required Fields

When the Coverage relationship coding is not set to self, a RelatedPerson resource is required and will be used for subscriber information

  • .name[use=official].family
  • .name[use=official].given[0]
  • .address[0].line[0]
  • .address[0].city
  • .address[0].state
  • .address[0].postalCode
  • .birthDate

Practitioner (rendering, supervising, and referring providers) Required Fields

  • .name[use=official].family
  • .name[use=official].given[0]
  • .identifier[type=('http://terminology.hl7.org/CodeSystem/v2-0203', 'NPI')]

Optional Data

There are many additional pieces of data that may be necessary to have a claim successfully accepted by a payor. This section discusses how these are supported by Oystehr in the FHIR data model.

Adding Non-Standard Claim Data

Data that doesn't have a home in the FHIR Claim spec can be added to a claim using the Claim.supportingInfo field. You will need to use different supportingInfo entry formats depending on the data you want to transmit. See the following sections for details on each supported entry format.

Attachments

Raw supplemental information attachments can be added to a claim using the Claim.supportingInfo field. Control codes for this data are added to the Claim.supportingInfo.code.coding array:

  • .supportingInfo.category[system='https://www.hl7.org/fhir/R4B/valueset-claim-informationcategory.html']
  • .supportingInfo.code[system='https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-report-type-code']
  • .supportingInfo.code[system='https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-transmission-code']
    • Report transmission codes can be found here (opens in a new tab). Note that only a subset of these are valid for the 837 specification.

DocumentReference resource references and custom ACNs are stored in the value* fields, as shown in the examples below.

Note that each claim is limited to 10 attachments, across all formats.

Electronic Attachments

The Oystehr RCM service has first-class support for uploading electronic attachments using DocumentReference resources and the Oystehr Z3 Service. The claim submission process will retrieve referenced files from Z3 and upload them to the payer. ACNs will be managed by Oystehr and will be ignored if provided.

{
  resourceType: "Claim",
  // ...
  supportingInfo: [
    {
      sequence: 1,
      category: { coding: [{ system: 'http://terminology.hl7.org/CodeSystem/claiminformationcategory', code: 'attachment' }] },
      code: {
        coding: [
          // Specifying a report type code is optional but will be included in the claim transmission
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-report-type-code', code: 'RR' },
        ]
      },
      valueReference: 'DocumentReference/e227ac41-1158-40a9-9db3-1a0837f03655',
    },
    {
      sequence: 2,
      category: { coding: [{ system: 'http://terminology.hl7.org/CodeSystem/claiminformationcategory', code: 'info' }] },
      // Omitting report type code will be sent using the generic `OZ` "Support Data for Claim" code
      valueReference: 'DocumentReference/945e21be-8ab3-4235-b41c-0b88e835dc11',
    },
  ],
  // ...
}
Non-electronic Attachments

In the rare case that you need to submit a claim without creating a DocumentReference using Z3, you will need to submit your attachments to a payer separately. You will specify your own ACN if needed in the supportingInfo entry's valueString field.

{
  resourceType: "Claim",
  // ...
  supportingInfo: [
    {
      sequence: 1,
      category: { coding: [{ system: 'http://terminology.hl7.org/CodeSystem/claiminformationcategory', code: 'info' }] },
      code: {
        coding: [
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-additional-info-type', code: 'PWK' },
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-report-type-code', code: 'RR' }, // Radiology Reports
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-transmission-code', code: 'BM' }, // By Mail
        ]
      },
    },
    {
      sequence: 2,
      category: { coding: [{ system: 'http://terminology.hl7.org/CodeSystem/claiminformationcategory', code: 'info' }] },
      code: {
        coding: [
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-additional-info-type', code: 'PWK' },
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-report-type-code', code: 'XP' }, // Photographs
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-attachment-transmission-code', code: 'EL' }, // Separate electronic submission via x12
        ]
      },
      valueString: '123456789', // ACN
    },
  ],
  // ...
}

Claim Note

A claim note can be added to Claim.supportingInfo using special code entries:

  • .supportingInfo.code[system='https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-additional-info-type', code=NTE]
  • .supportingInfo.code[system='https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-note-reference-code']
    • Note reference codes can be found here (opens in a new tab). Note that only a few of these are valid for the 837 specification.
{
  resourceType: "Claim",
  // ...
  supportingInfo: [
    {
      sequence: 1,
      category: { coding: [{ system: 'http://terminology.hl7.org/CodeSystem/claiminformationcategory', code: 'info' }] },
      code: {
        coding: [
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-additional-info-type', code: 'NTE' },
          { system: 'https://terminology.fhir.oystehr.com/CodeSystem/rcm-claim-note-reference-code', code: 'DGN' }, // Diagnosis Description
        ]
      },
      valueString: '...' // Free-form text, max length 80 characters
    },
  ],
  // ...
}

There can only be one claim note per claim.

Submitting a Claim

After you have assembled all data as required, you can perform claim submission with either the Typescript SDK or the API:

Perform claim submission with the v3 SDK:

import Oystehr from '@oystehr/sdk';
 
const oystehr = new Oystehr({
  accessToken: "<your_access_token>",
});
 
const result = await oystehr.rcm.submitClaim({
  claimId: "7cb4321f-8d52-4d27-93ba-f20c86cbceaf",
})

Access Policy

To submit a claim, your user or M2M client needs to have the following access policy:

{
  "rule": [
    {
      "action": "RCM:SubmitClaim",
      "effect": "Allow",
      "resource": "RCM:Claim"
    },
  ],
}