# Visit Detail OMOP Table - Data Management with FHIR v0.1.0

* [**Table of Contents**](toc.md)
* [**Artifacts Summary**](artifacts.md)
* **Visit Detail OMOP Table**

## Logical Model: Visit Detail OMOP Table 

| | |
| :--- | :--- |
| *Official URL*:https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitDetail | *Version*:0.1.0 |
| Draft as of 2025-10-23 | *Computable Name*:OMOPVisitDetail |

 
The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain. 

**Usages:**

* Refer to this Logical Model: [Condition Occurrence OMOP Table](StructureDefinition-OMOPConditionOccurrence.md), [Device Exposure OMOP Table](StructureDefinition-OMOPDeviceExposure.md), [Drug Occurrence OMOP Table](StructureDefinition-OMOPDrugExposure.md), [Measurement OMOP Table](StructureDefinition-OMOPMeasurement.md)...Show 4 more,[Note OMOP Table](StructureDefinition-OMOPNote.md),[Observation OMOP Table](StructureDefinition-OMOPObservation.md),[Procedure Occurrence OMOP Table](StructureDefinition-OMOPProcedureOccurrence.md)and[Visit Detail OMOP Table](StructureDefinition-OMOPVisitDetail.md)

You can also check for [usages in the FHIR IG Statistics](https://packages2.fhir.org/xig/aphp.fhir.fr.dm|current/StructureDefinition/OMOPVisitDetail)

### Formal Views of Profile Content

 [Description of Profiles, Differentials, Snapshots and how the different presentations work](http://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#structure-definitions). 

 

Other representations of profile: [CSV](StructureDefinition-OMOPVisitDetail.csv), [Excel](StructureDefinition-OMOPVisitDetail.xlsx) 



## Resource Content

```json
{
  "resourceType" : "StructureDefinition",
  "id" : "OMOPVisitDetail",
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
      "valueCode" : "can-be-target"
    }
  ],
  "url" : "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitDetail",
  "version" : "0.1.0",
  "name" : "OMOPVisitDetail",
  "title" : "Visit Detail OMOP Table",
  "status" : "draft",
  "date" : "2025-10-23T20:49:03+00:00",
  "publisher" : "AP-HP",
  "contact" : [
    {
      "name" : "AP-HP",
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://aphp.fr"
        }
      ]
    }
  ],
  "description" : "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "FR",
          "display" : "France"
        }
      ]
    }
  ],
  "fhirVersion" : "4.0.1",
  "kind" : "logical",
  "abstract" : false,
  "type" : "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitDetail",
  "baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Base",
  "derivation" : "specialization",
  "differential" : {
    "element" : [
      {
        "id" : "OMOPVisitDetail",
        "path" : "OMOPVisitDetail",
        "short" : "Visit Detail OMOP Table",
        "definition" : "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain."
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-id",
        "path" : "OMOPVisitDetail.visit_detail_id",
        "short" : "Visit Detail Identifier",
        "definition" : "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "integer"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.person-id",
        "path" : "OMOPVisitDetail.person_id",
        "short" : "Person",
        "definition" : "Person",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPPerson"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-concept-id",
        "path" : "OMOPVisitDetail.visit_detail_concept_id",
        "short" : "Visit Detail",
        "definition" : "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPConcept"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-start-date",
        "path" : "OMOPVisitDetail.visit_detail_start_date",
        "short" : "Visit Detail Start Date",
        "definition" : "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "date"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-start-datetime",
        "path" : "OMOPVisitDetail.visit_detail_start_datetime",
        "short" : "Visit Detail Start Datetime",
        "definition" : "Visit Detail Start Datetime",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "dateTime"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-end-date",
        "path" : "OMOPVisitDetail.visit_detail_end_date",
        "short" : "Visit Detail End Date",
        "definition" : "This the end date of the patient-provider interaction.  If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "date"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-end-datetime",
        "path" : "OMOPVisitDetail.visit_detail_end_datetime",
        "short" : "Visit Detail End Datetime",
        "definition" : "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "dateTime"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-type-concept-id",
        "path" : "OMOPVisitDetail.visit_detail_type_concept_id",
        "short" : "Visit Detail Type",
        "definition" : "Use this field to understand the provenance of the visit detail record, or where the record comes from.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPConcept"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.provider-id",
        "path" : "OMOPVisitDetail.provider_id",
        "short" : "Provider",
        "definition" : "There will only be one provider per  **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPProvider"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.care-site-id",
        "path" : "OMOPVisitDetail.care_site_id",
        "short" : "Care Site",
        "definition" : "This field provides information about the Care Site where the Visit Detail took place.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPCareSite"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-source-value",
        "path" : "OMOPVisitDetail.visit_detail_source_value",
        "short" : "Visit Detail Source Value",
        "definition" : "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "string"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-detail-source-concept-id",
        "path" : "OMOPVisitDetail.visit_detail_source_concept_id",
        "short" : "Visit Detail Source Concept",
        "definition" : "Visit Detail Source Concept",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPConcept"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.admitted-from-concept-id",
        "path" : "OMOPVisitDetail.admitted_from_concept_id",
        "short" : "Admitted From",
        "definition" : "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPConcept"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.admitted-from-source-value",
        "path" : "OMOPVisitDetail.admitted_from_source_value",
        "short" : "Admitted From Source Value",
        "definition" : "Admitted From Source Value",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "string"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.discharged-to-source-value",
        "path" : "OMOPVisitDetail.discharged_to_source_value",
        "short" : "Discharged To Source Value",
        "definition" : "Discharged To Source Value",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "string"
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.discharged-to-concept-id",
        "path" : "OMOPVisitDetail.discharged_to_concept_id",
        "short" : "Discharged To",
        "definition" : "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example.  It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\".  Use concept id = 0 when a person is discharged to home.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPConcept"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.preceding-visit-detail-id",
        "path" : "OMOPVisitDetail.preceding_visit_detail_id",
        "short" : "Preceding Visit",
        "definition" : "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitDetail"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.parent-visit-detail-id",
        "path" : "OMOPVisitDetail.parent_visit_detail_id",
        "short" : "Parent Visit",
        "definition" : "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitDetail"
            ]
          }
        ]
      },
      {
        "id" : "OMOPVisitDetail.visit-occurrence-id",
        "path" : "OMOPVisitDetail.visit_occurrence_id",
        "short" : "Visit Occurrence",
        "definition" : "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPVisitOccurrence"
            ]
          }
        ]
      }
    ]
  }
}

```
