How to set a provider type via a patch

The providerType i.e. the type of the service provider is normally set via the role type. However, over time special provider types have been invented/defined that are not found in the list of ordinary roleTypes. Please note, that the rule space for services of chapter "D: General Services" as well as the valid service space visible in the ISearch and IValidate interfaces depends on the defined/set provider type!

The string variable

  bstrPatch = "setParameter(providerType = aType)"  
with aType takeing one of the values in the following table.
Note, that the patch string is case and whitespace-insensitive!
 
By using either functions: the corresponding providerType is set overriding the previous providerType.
Note, that the return value of both functions is S_FALSE in such a case!
 
The table of usable provider types, that can be used:
   aType        Provider type
lab => «Auftragslaboratorium» | «Laboratoires mandatés» | «Laboratorio su mandato»
hospital => «Spitallaboratorium (Eigenbedarf)» | «Laboratoires d'hôpitaux (pour les besoins propres de l'hôpital)» | «Laboratorio d'ospedale secondo (per il proprio bisogno)»
hospitalEx => «Spitallaboratorium (Fremdauftrag)» | «Laboratoires d'hôpitaux (sur mandat de prestataires externes)» | «Laboratorio d'ospedale secondo (per incarico esterno)»
hospital(54.1c, 54.2) => «Spitallaboratorium Art. 54.1c, 54.2 KVV (Eigenbedarf)» | «Laboratoires d'hôpitaux art. 54.1c, 54.2 OAMal (pour les besoins propres de l'hôpital)» | «Laboratorio d'ospedale secondo art. 54.1c, 54.2 OAMal (per il proprio bisogno)»
hospitalEx(54.1c, 54.2) => «Spitallaboratorium Art. 54.1c, 54.2 KVV (Fremdauftrag)» | «Laboratoires d'hôpitaux art. 54.1c, 54.2 OAMal (sur mandat de prestataires externes)» | «Laboratorio d'ospedale secondo art. 54.1c, 54.2 OAMal (per incarico esterno)»
hospital(54.1b) => «Spitallaboratorium Art. 54.1b KVV (Eigenbedarf)» | «Laboratoires d'hôpitaux art. 54.1b OAMal (pour les besoins propres de l'hôpital)» | «Laboratorio d'ospedale secondo art. 54.1b OAMal (per il proprio bisogno)»
pharmacist => «Offizin eines Apothekers oder einer Apothekerin» | «Officines de pharmaciens» | «L'officina del farmacista»
praxis (default) => «Praxislabor (praxisLab + alle Fachrichtungen)» | «Laboratoires de cabinets médicaux (praxisLab + toutes spécialités)» | «Laboratorio del gabinetto medico (praxisLab + tutte le discipline)»
praxisLab => «Praxislabor Grundversorgung» | «Laboratoires de cabinets médicaux, soins de base» | «Laboratorio del gabinetto medico (cure di base)»
homeVisit => «Hausbesuch (für Eigenbedarf)» | «Consultation à domicile (pour les besoins propres du médecin)» | «Visita a domicilio (per il proprio bisogno)»
allergology => «Allergologie, klinische Immunologie» | «Allergologie, Immunologie clinique» | «Allergologia, Immunologia clinica»
immunology => «Allergologie, klinische Immunologie» | «Allergologie, Immunologie clinique» | «Allergologia, Immunologia clinica»
dermatology => «Dermatologie, Venerologie» | «Dermatologie, Vénérologie» | «Dermatologia,Venerologia»
venerology => «Dermatologie, Venerologie» | «Dermatologie, Vénérologie» | «Dermatologia,Venerologia»
endocrinology => «Endokrinologie, Diabetologie» | «Endocrinologie, diabétologie» | «Endocrinologia, diabetologia»
gastroenterology => «Gastroenterologie» | «Gastroentérologie» | «Gastroenterologia»
gynaecology => «Gynäkologie, Geburtshilfe» | «Gynécologie, obstétrique» | «Ginecologia, ostetricia»
haematology => «Hämatologie, medizinische Onkologie» | «Hématologie, Oncologie médicale» | «Ematologia, Oncologia medica»
oncology => «Hämatologie, medizinische Onkologie» | «Hématologie, Oncologie médicale» | «Ematologia, Oncologia medica»
paediatrics => «Kinder und Jugendmedizin» | «Médecine pour enfants et adolescents» | «Pediatria»
physicalMedicine => «Physikalische Medizin, Rehabilitation» | «Médecine physique, réadaptation» | «Medicina fisica, riabilitazione»
pneumology => «Pneumologie» | «Pneumologie» | «Pneumologia»
rheumatology => «Rheumatologie» | «Rhumatologie» | «Reumatologia»
tropicalMedicine => «Tropenmedizin, Reisemedizin» | «Médecine tropicale, Médecine des voyages» | «Medicina tropicale, Medicina di viaggio»
travelMedicine => «Tropenmedizin, Reisemedizin» | «Médecine tropicale, Médecine des voyages» | «Medicina tropicale, Medicina di viaggio»
midwife => «Hebammen» | «Sages-femmes» | «Levatrici»
chiropractor => «Chiropraktoren» | «Chiropraticiens» | «Chiropratici»
noFilter => turns any provider type checking/filtering off

 
What providerType is currently in effect?
Since tariff 317 does not have the concept of anonymous codes (as was with tariff 316), the properties ISearch::GetAnonymousCode() as well as IValidate::GetAnonymousCode() have been patched to return the currently defined access filter as well as the area codes (C, H, F, etc.) of the service in question.
The format of the returned string is:
providerType=<aType>   area=<set_of_area_codes>