51 lines
1.9 KiB
C#
51 lines
1.9 KiB
C#
public class FhirOptions
|
|
{
|
|
public const string Section = "Fhir";
|
|
|
|
/// <summary>Single API key (convenience shorthand — prefer ApiKeys array for rotation).</summary>
|
|
public string? ApiKey { get; set; }
|
|
|
|
/// <summary>Multiple active API keys for zero-downtime rotation. Both ApiKey and ApiKeys are checked.</summary>
|
|
public string[] ApiKeys { get; set; } = [];
|
|
|
|
/// <summary>Identifier systems accepted for Patient.identifier (hospital MRNs).</summary>
|
|
public string[] PatientIdentifierSystems { get; set; } =
|
|
[
|
|
"urn:oid:2.16.840.1.113883.4.1",
|
|
"http://hospital.example/mrn"
|
|
];
|
|
|
|
/// <summary>Identifier systems accepted for Encounter.identifier (visit numbers).</summary>
|
|
public string[] EncounterIdentifierSystems { get; set; } =
|
|
[
|
|
"http://hospital.example/visit"
|
|
];
|
|
|
|
/// <summary>System URI VigilCare uses when embedding internal UUIDs in FHIR responses.</summary>
|
|
public string InternalPatientIdSystem { get; set; } = "http://vigilcare.local/patient-id";
|
|
|
|
public string InternalEncounterIdSystem { get; set; } = "http://vigilcare.local/encounter-id";
|
|
|
|
public string DefaultDepartment { get; set; } = "GENERAL_MEDICINE";
|
|
|
|
public string DefaultEncounterType { get; set; } = "INPATIENT";
|
|
|
|
/// <summary>Maps FHIR location/serviceProvider codes to internal department strings.</summary>
|
|
public Dictionary<string, string> DepartmentCodeMap { get; set; } = new()
|
|
{
|
|
["ICU"] = "ICU",
|
|
["EMER"] = "EMERGENCY",
|
|
["CARD"] = "CARDIOLOGY",
|
|
["SURG"] = "SURGERY",
|
|
["PEDI"] = "PEDIATRICS",
|
|
["MED"] = "GENERAL_MEDICINE"
|
|
};
|
|
|
|
/// <summary>Maps FHIR Encounter.class ACT codes to internal encounter type strings.</summary>
|
|
public Dictionary<string, string> EncounterClassMap { get; set; } = new()
|
|
{
|
|
["IMP"] = "INPATIENT",
|
|
["AMB"] = "OUTPATIENT",
|
|
["EMER"] = "EMERGENCY"
|
|
};
|
|
} |