--- 
AppSettings: 
  CacheDbResults: true
  SiteTitle: "CSI-NET-LABSRVCS-{env}"
PostgreSQL: 
  ReadCon: "Host={database:host};Port={database:port};Database={database:lab:dbName};User Id={database:lab:userId};Password={database:lab:password};"
  WriteCon: "Host={database:host};Port={database:port};Database={database:lab:dbName};User Id={database:lab:userId};Password={database:lab:password};"
#Oracle:
 # ReadCon: "Data Source=(DESCRIPTION=(CONNECT_TIMEOUT={database:connectTimeout})(RETRY_COUNT={database:retryCount})(RETRY_DELAY={database:retryDelay})(TRANSPORT_CONNECT_TIMEOUT={database:transportConnecttimeout})(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password};Max Pool Size={database:maxPoolsize};Connection Timeout={database:connectionTimeout}"
 # WriteCon: "Data Source=(DESCRIPTION=(CONNECT_TIMEOUT={database:connectTimeout})(RETRY_COUNT={database:retryCount})(RETRY_DELAY={database:retryDelay})(TRANSPORT_CONNECT_TIMEOUT={database:transportConnecttimeout})(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password};Max Pool Size={database:maxPoolsize};Connection Timeout={database:connectionTimeout}"
#Oracle:
 # ReadCon: "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password}"
  #WriteCon: "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password}"

#Oracle:
#  ReadCon: "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password};Max Pool Size=50;Connection Timeout=30"
#  WriteCon: "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={database:primaryHost})(PORT={database:port}))(CONNECT_DATA=(SERVICE_NAME={database:serviceName})));User Id={database:lab:userId};Password={database:lab:password};Max Pool Size=50;Connection Timeout=30"

# HIGH AVAILABILITY
#Oracle: 
#  ReadCon: "Data Source=(description=(address=(host={database:primaryHost})(protocol=tcp)(port={database:port}))(address=(host={database:secondaryHost})(protocol=tcp)(port={database:port}))(failover=yes)(connect_data=(service_name={database:serviceName})(failover_mode=(type=select)(method=basic))));User Id={database:lab:userId};Password={database:lab:password}"
#  WriteCon: "Data Source=(description=(address=(host={database:primaryHost})(protocol=tcp)(port={database:port}))(address=(host={database:secondaryHost})(protocol=tcp)(port={database:port}))(failover=yes)(connect_data=(service_name={database:serviceName})(failover_mode=(type=select)(method=basic))));User Id={database:lab:userId};Password={database:lab:password}"
Logging: 
  IncludeScopes: false
  LogLevel: 
    Default: Debug
    Microsoft: Information
    System: Information
TestVal: testvalue
kafka: 
  service_name: "CSI-NET-LABSRVCS-{env}"
billing-notification-rabbitmq: 
  exchange: 
    exchangeName: billing-notification-exchange
    type: topic
    durable: true
    exclusive: false
    autoDelete: false
  queue:
    name: billing-notification-queue
    routekey: billing-notification-queueKey
    autoDelete: false
    durable: true
    exclusive: false
lab-request-rabbitmq: 
  exchange: 
    exchangeName: lab-request-exchange
    type: fanout
    durable: false
    exclusive: false
    autoDelete: false
  queue:
    name: LabRequestEvent
    routekey: LabRequestEvent
    autoDelete: false
    durable: true
    exclusive: false
    autoack: false
lab-rabbitmq:
    exchangeName: net-template
    durable: true
    queue:
      name: masterdata-sync
      routeKey: masterdata-sync
      durable: true
    ic-notification: 
      exchangeName: ic-notification
      durable: true
      Type: direct
      queue: 
       durable: true
       routekey: ic-notification.infected
    serio-ic-notification: 
      exchangeName: ic-notification
      durable: true
      Type: direct
      queue: 
       durable: true
       routekey: lab-test-infected
lab-request-rabbitmq-billing: 
  exchange: 
    exchangeName: invoice-status-lab-exchange
    type: direct
    durable: true
  queue:
    name: lab-invoice-status-queue
    routekey: lab-invoice-status-queueKey
    durable: true
rabbitmq:
  client:
    exchange: lab-td-exchange
    type: topic
    durable: true
    exclusive: false
    autoDelete: false
    queue: 
      name: TestDirectoryProcedure
      routekey: TestDirectoryProcedure
  lab-order-exchange: 
    exchangename: feature-ehr-exchange
    queue: 
      name: feature-ehr-queue
      routekey: feature-ehr-queue
  exchange-notification: 
    autoDelete: false
    durable: false
    exchangeName: lab.qa.notifications.exchange
    exclusive: false
    queue: 
      routekey: lab.qa.notifications
  sample-collection-exchnage: 
    exchangeName: lab-exchange
    queue: 
      name: lab-orders-queue
      routekey: lab-orders-queue
    queue2: 
      name: sample-rejecting-notify-queue
      routekey: sample-rejecting-notify-queue
redis: 
  client: 
    instanceName: "lab:"
contextSkipOn: ""
ADT:
  DataKey: masterdataObject
  TypeKey: masterdataType
ADTType:
  Hospital: Hospitals
  HospitalGroup: HospitalGroup
HospitalAttribute:
  HospitalGroupKey: hospitalGroup
  HospitalID: id
  HospitalGroupIdKey: id
  TranslationLanguageArrayKey: translationLanguages
  LabHospitalTranslationAttribute:
    TranslationValueObjKey: translationValues
    LanguageObjKey: language
    ColumnName: columnName
    ColumnValue: value
    TranslationId: id
    HospitalName: hospitalName
    Language: language
    LanguageCode: languageCode
    LabHospitalGroupAttribute:
  HospitalGroupId: id
LabHospitalGroupAttribute:
  HospitalGroupId: id
  TranslationLanguageArrayKey: translationLanguages
  LabHospitalGroupTransalationAttribute:
    TranslationId: id
    ColumnName: columnName
    ColumnValue: value
    HospitalGroupName: hospitalGroupName
    TranslationValueObjKey: translationValues
    LanguageObjKey: language
    LanguageCode: language
    Language: language
ProceduresAttribute:
  ProcedureCode: procedureId
  ProcedureName: name
  LanguageCode: languageCode
MongoLogs: "mongodb://{Mongo:appLogs}/app-logs"
Report:
 Mongo:
   Collection: "LAB"
RabbitMQ:
 Mongo:
   Collection: "LAB"
RmqLabNotificationsExchange:
  exchangename: csi.net.labsrvcs.notifications
  durable: true
  routeKeys:
    LabOrderCancelation: csi.net.labsrvcs.notifications
    VerifyTextBasedResults: csi.net.labsrvcs.notifications
    VerifyHistopathologyResults: csi.net.labsrvcs.notifications
    SampleRejected: csi.net.labsrvcs.notifications
    SampleCollected: csi.net.labsrvcs.notifications
    SampleRecieved: csi.net.labsrvcs.notifications
    IHEPublish: csi.net.labsrvcs.ihe
RmqICNotificationsExchange:
  exchangename: csi.net.labsrvcs.ic.notifications
  routeKeys:
    InfectedNotifyToIC: csi.net.labsrvcs.lab.sample.infected
    InfectedMicroNotifyToIC: csi.net.labsrvcs.sample.micro.infected
RmqSampleCollectionExchange:
  exchangename: csi.net.labsrvcs
  routeKeys:
    SampleRejected: csi.net.labsrvcs.sample.reject.notifications
    SampleRecieved: csi.net.labsrvcs.sample.recieved
    LabOrderStatus: csi.net.labsrvcs.status
    IHEPublish: csi.net.labsrvcs.ihe
    TestStatusPublish: csi.net.labsrvcs.TestStatus
SetupMasterDataExchange:
  exchangeName: net-template
  durable: true
  queue:
    name: masterdata-sync
    routeKey: masterdata-sync
    durable: true
RmqBillingCollectionExchange:
  exchangeName: csi.net.labsrvcs.billing
  durable: true
  routeKeys:
    PerformedStatus: csi.net.labsrvcs.billing
LabUserRoles:
  -"Lab Technician"
  -"Lab_Doctor"
  -"LAB_Manager"
  -"Lab  Receptionist"
KafkaTopics:
  PerformedStatus: "{env}-csi.net.labsrvcs.billing"
  SampleCollected: "{env}-csi.net.labsrvcs.samplecollected"
  TestStatusPublish: "{env}-csi.net.labsrvcs.TestStatus"
  SampleRecieved: "{env}-csi.net.labsrvcs.sample.recieved"
  LabOrderCancelation: "{env}-csi.net.labsrvcs.labordercancellation"
UrlOptions:
  FormTemplateUrl: "http://csi-net-empiread/api/RegistrationFormTemplate"
  PatientSearchServiceUrl: "http://csi-net-empiread/api/patient"
  BillingGetAccountIdUrl: "http://csi-bm-invoice/billing/account/create"
  UserServiceEndPoint: "http://csi-iam-service/auth/realms/master/csi-user-detail/"
  BillingDefaultPayerEndPoint: "http://csi-bm-billing/billing/payer-group/get-default"
  BillingSearchPayerContract: "http://csi-bm-billing/billing/payer-contract/search"
  BillingSearchPayerPolicy: "http://csi-bm-billing/billing/payer-contract-policies/search"
  BaseUtilityServiceUrl: "http://csi-java-base-utility"
  EHRPatientPOMRUrl: "http://csi-java-ehr-patient-pomr"
  RMSReservationServiceUrl: "http://csi-pms-rms-reservation"
  ADTRequestUrl: "http://csi-pms-adt-request"
  EHRPatientIpUrl: "http://csi-java-ehr-ip/ehr/ip/doctor/read/carePlan/getMrpIdsAndNursingGroupId"
  PHRRequestUrl: "http://csi-phr-base/api/v1.0/masterData/txnUsersList"
  LABRequestUrl: "http://csi-net-labsrvcs/api/UserManagement/AllUsersForLabRoles"
  RMSResourceRegistryUrl: "http://csi-pms-rms-resource-registry/amd-doctor/search"
  IEGenaralUrl: "http://csi-ie-general/api/patient"
  ErPatientAssigneeUri : "http://csi-net-erfuncti/api/ERDashboard/GetPatientAssignees"
  PomrForPomrId: "http://csi-java-ehr-patient-pomr/ehr/opd/pomr/byPomrId?"
  ClinicDetails": "http://csi-pms-rms-masterdata/amd-masterdata/clinic/getById/"
  ClinicalAcknowledgeURL : "http://csi-java-ehr-ip/v1.0/ehr/ip/clinical-result-acknowledgement/getData"
  RMSProcedureDetailsURL: "http://csi-pms-rms-masterdata/amd-masterdata/procedures/light-weight-search?isExternal=true&includeAllConfigCodes=true&lang=en&internationalization=false"

ElasticApm:
  ServiceName: CSI-NET-LABSRVCS

Serilog:
  MinimumLevel:
    Default: Debug
    Override:
      Microsoft: Debug
      System: Error