Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers








télécharger 96.72 Kb.
titreLivrable a : Spécification des Services Web d’Import et d’Export de Dossiers
date de publication27.03.2017
taille96.72 Kb.
typeDocumentos
ar.21-bal.com > droit > Documentos

Livrable 4.1.a :

Spécification des Services Web

d’Import et d’Export de Dossiers

1. Introduction



L’objectif du livrable est de décrire et spécifier l'outillage nécessaire pour collecter les données médicales et sociales, les normaliser et les intégrer dans une base de données sur un serveur fédérateur. Santeos est responsable de l’infrastructure : serveur de bases de données fédérateur, serveur d’identité patients, annuaire des professionnels de santé, interfaces Web, infrastructure de communication et de signature. Les modules d’import/export seront développés conjointement par l’UVSQ et SANTEOS. La présente spécification est sous la responsabilité du laboratoire PRiSM.
Le problème de l’intégration de données hétérogènes en XML commence à être bien connu. Un schéma XML d’échange doit être agréé par tous les partenaires. Chaque participant doit assurer la publication de tout ou partie des dossiers qu’il gère en XML le plus possible proche d’un standard1 pour permettre le chargement des données par les partenaires récepteurs (carte, serveur fédérateur). Les structures supportant le stockage sont souvent relationnelles ou objet-relationnelles (Oracle, SQL Server, 4D, …). Il faut donc assurer la transformation (i.e, le mapping) objet-relationnel vers XML, problème classique.
Cependant, la solution a dû être adaptée au contexte pour au moins deux raisons : (i) donner la possibilité de charger tout ou partie d’un dossier sur l’équipement mobile ou le serveur fédérateur en liaison avec les droits du demandeur et les besoins applications ; (ii) assurer la portabilité du module de chargement sur différents serveurs de données, ce qui pose problème car les SGBD commerciaux existants supportent des fonctionnalités XML différentes. En conséquence, un middleware accessible comme un Web Service par tout client autorisé et permettant la publication de vues de dossiers est retenue.
Ce middleware doit aussi permettre d’intégrer un dossier mobile modifié dans le serveur et éventuellement de le fusionner avec le dossier existant. Ceci pose le problème de la mise à jour différentielle d’une base objet-relationnelle à partir de XML. Bien que certains SGBD proposent déjà des solutions (SQL Server 2005), celles-ci restent spécifiques et non portables. Une gestion limitée de versions XML est proposée pour être capable d’une part de suivre l’historique d’un patient et d’autre part de déterminer lors de la connexion d’une SSMSC les parties du dossier à mettre à niveau côté serveur. En résumé, le middleware doit permettre facilement l’import, l’export et la synchronisation de documents XML conforme à des vues de tables objet-relationnelles.
Afin de faciliter l’intégration des services d’interconnexion ci-dessus introduits, une exposition sous forme de services Web semble donc la plus adaptée et prometteuse. Elle garantit l’utilisation de standards aujourd’hui éprouvés et la possibilité d’appeler les services offerts depuis tout mobile sans difficulté. Elle assure aussi l’évolutivité permettant de composer les services dans le cadre d’une architecture SOA. Compte-tenu de la standardisation des protocoles sécurisés pour invoquer les services Web (WS-Security [WSS06]), il sera possible de protéger les données du patient par chiffrement et signature des messages SOAP échangés.
Dans la plupart des cas, les données contenues dans le dossier médico-social du patient proviennent ou alimentent de systèmes d'informations externes, comme ceux des organismes hospitaliers, des assurances, des laboratoires, etc. Il doit donc être possible d'assurer l'échange (import / export) de données entre la base centralisée de SANTEOS et des bases externes gérées dans des systèmes hétérogènes. La démarche adoptée s’appuie sur un schéma de données XML d’échange (pivot) inspiré des standards. Ensuite, elle nécessite de développer un adaptateur (wrapper) pour supporter ce schéma du côté de chaque système d'information impliqué dans le projet PlugDB, dont celui de l'ALDS. Le schéma pivot est basé sur les standards d'échange (XML en l'occurrence) et les standards métiers du domaine de la santé (HL7 et HPRIM). Un schéma est proposé dans ce document. Il devra encore être validé et éventuellement revu en concertation avec les partenaires du projet.

2. Architecture d’intégration


L’architecture d’intégration s’appuie sur des sources hétérogènes encapsulées par un adaptateur XML permettant de publier sur demande des dossiers en XML standards ou de recevoir des dossiers en XML standards afin de les intégrer à la base locale. Les dossiers publiés ou reçus sont définis par un template XML (structures XML avec contenus composés de constantes ou variables à instancier localement.


Figure 2.1 : Architecture d’intégration
Le développement des adaptateurs proprement dits consiste à implémenter une interface de type web services incluant les fonctions suivantes (les deux derniers servent pour la synchronisation motivée dans la précédente section) :


  • Connect(server, login, pass) pour se connecter au serveur,

  • Disconnect() pour quitter la session,

  • GetDossier(id, XmlDos) pour extraire un dossier complet et retourner le résultat dans le modèle XML pivot

  • PutDossier(XmlDos) pour charger un dossier entier depuis un fichier XML

  • GetDiffDossier (id, LastEvent, XmlDos) pour extraire les événements du dossier nouveau depuis le dernier.

  • PutDiffDossier (id, LastEvent, XmlDos) pour charger les derniers événements du dossier depuis le dernier.


Ces services sont rendus accessibles à toute application à travers le protocole SOAP. De plus, ils devraient être sécurisés par Web Service Security.
Concernant la réalisation des méthodes d'échange ci-dessus, nous avons choisi de développer un adaptateur interprétant des templates de documents XML (conformes au schéma pivot dans notre cas). Cet outil écrit en Java et déployé avec AXIS 2 est générique et sera mis à la disposition des partenaires. Il est décrit dans la section 4.

3. Modèle d’échange XML



Aussi appelé modèle pivot, ce modèle est dérivé du « classeur vert revu » de l’ALDS. Il est aussi inspiré des standards. La racine est l’élément dossierMedical. Il comporte au premier niveau les données sur le patient, les assurances, le volet médical et le volet social (voir figure 3.1).



  • Patient

  • Assurance

  • Volet Médical

  • Volet Social


Figure 3.1 : Arbre du DMSP modélisé avec XML SPY

3.1. L’élément Patient

Cet élément informe les organismes de soin : de l’identité du Patient, de son entourage (proches, voisins, etc…), et de l’emplacement du patient au sein de l’organisme de santé s’il est hospitalisé.



Figure 3.2 : Le Sous-Arbre de l’élément « Patient »
3.2. L’élément Assurance

Cet élément donne des précisions sur les organismes d’assurance auxquels le patient adhère.



Figure 3.3 : Le Sous-Arbre de l’élément « Assurance »
3.3. L’élément Volet Médical

Le volet Médical informe le corps soignant sur l’état de santé du patient, de son évolution ainsi que les résultats des examens et les comptes rendus de consultations (Figure 3.4).


Figure 3.4 : Sous-Arbre de l’élément « voletMédical »
3.4. L’élément Volet Social

Le volet Social apporte des informations importantes pour le suivi du patient à domicile.



Figure 3.5 : Sous-Arbre de l’élément « voletSocial »
Comme il a été mentionné ci-dessus, nous nous sommes basés sur le standard HPRIM XML pour la modélisation du dossier partagé du patient. Le XSD généré résulte de la fusion entre le standard HPRIM XML et l’élément du dossier. Le schéma (.xsd) est fourni en annexe.


4. Adaptateur Relationnel




5. Mapping 4D à modèle d’échange






6. Conclusion


7. Annexes




7.1 Schema XML du modèle pivot















































































































































type d'un élément du volet médical. Décrit les habitudes alimentaires, le tabac, l'environnement professionnel, sportif, ...etc























































































































































































































7.2 Schéma relationnel canonique



Ce schéma devrait être un sur-ensemble de celui implémenté sur le composant mobile. Nous donnons ici le script de création pour SQL Server et une vue graphique synthétique.
USE [Base_DMP]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[user_DMP]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[user_DMP](

[id_user] [int] NOT NULL,

[nom_Usuel] [varchar](max) NULL,

[nom_Naissance] [varchar](max) NULL,

[prenom] [varchar](max) NULL,

[sexe] [varchar](max) NULL,

[civilite] [varchar](max) NULL,

[date_Naissance] [varchar](max) NULL,

[lieu_Naissance] [varchar](max) NULL,

[nationalite] [varchar](max) NULL,

[langue] [varchar](max) NULL,

[situation] [varchar](max) NULL,

[email] [varchar](max) NULL,

[telephones] [xml] NULL,

CONSTRAINT [PK_user_DMP] PRIMARY KEY CLUSTERED

(

[id_user] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Intervenant]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Intervenant](

[id_Intervenant] [int] NOT NULL,

[id_User] [int] NULL,

[specialite] [varchar](max) NULL,

[freq_Intervention] [varchar](max) NULL,

[horaire] [varchar](max) NULL,

[service] [varchar](max) NULL,

CONSTRAINT [PK_Intervenant] PRIMARY KEY CLUSTERED

(

[id_Intervenant] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[authentification]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[authentification](

[id_auth] [int] NOT NULL,

[id_User] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[login] [varchar](50) NULL,

[password] [varchar](50) NULL,

[droits] [varchar](max) NULL,

CONSTRAINT [PK_authentification] PRIMARY KEY CLUSTERED

(

[id_auth] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[evenement]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[evenement](

[id_Event] [int] NOT NULL,

[id_User] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[id_Hier] [int] NULL,

[type_Event] [varchar](max) NULL,

[date_Creation] [varchar](max) NULL,

[date_Realisation] [varchar](max) NULL,

CONSTRAINT [PK_evenement] PRIMARY KEY CLUSTERED

(

[id_Event] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[patient]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[patient](

[id_Patient] [int] NOT NULL,

[id_User] [int] NOT NULL,

[groupe_Sanguin] [xml] NULL,

[antecedants] [xml] NULL,

[date_Deces] [varchar](max) NULL,

[heure] [varchar](max) NULL,

[commentaire] [varchar](max) NULL,

[lieu] [varchar](max) NULL,

[num_Chambre] [int] NULL,

[service] [varchar](max) NULL,

[num_Lit] [int] NULL,

[tel_Chambre] [varchar](max) NULL,

[personne_Prevenir] [xml] NULL,

CONSTRAINT [PK_patient] PRIMARY KEY NONCLUSTERED

(

[id_Patient] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[observations]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[observations](

[id_Observation] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[id_Intervenant] [int] NOT NULL,

[date] [nvarchar](max) NULL,

[details_Observation] [xml] NULL,

[consult_Memoire] [xml] NULL,

[Bilan_Medical] [xml] NULL,

[Consult_Geronto] [nvarchar](max) NULL,

CONSTRAINT [PK_observations] PRIMARY KEY CLUSTERED

(

[id_Observation] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[examen_Complementaire]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[examen_Complementaire](

[id_Examen] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[date] [varchar](max) NULL,

[radio] [varchar](max) NULL,

[ECG] [varchar](max) NULL,

[biologie] [varchar](max) NULL,

CONSTRAINT [PK_examen_Complementaire] PRIMARY KEY CLUSTERED

(

[id_Examen] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[traitements]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[traitements](

[id_Traitement] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[pathologie] [varchar](max) NULL,

[details_Traitement] [varchar](max) NULL,

[nature_Traitement] [varchar](max) NULL,

CONSTRAINT [PK_traitements] PRIMARY KEY CLUSTERED

(

[id_Traitement] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[grille_AGGIR]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[grille_AGGIR](

[id_Grille] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[evaluation] [xml] NOT NULL,

[date] [varchar](max) NULL,

[synthese] [varchar](max) NULL,

CONSTRAINT [PK_grille_AGGIR] PRIMARY KEY CLUSTERED

(

[id_Grille] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[plan_Aide]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[plan_Aide](

[id_Plan] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[details_plan] [xml] NOT NULL,

CONSTRAINT [PK_plan_Aide] PRIMARY KEY CLUSTERED

(

[id_Plan] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[volet_Social]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[volet_Social](

[id_Social] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[formulaire_Aide] [xml] NULL,

[environnement] [xml] NULL,

[habitat] [xml] NULL,

[fragilite_Personne] [xml] NULL,

CONSTRAINT [PK_volet_Social] PRIMARY KEY CLUSTERED

(

[id_Social] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[adresse]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[adresse](

[id_Adresse] [int] NOT NULL,

[id_Patient] [int] NULL,

[categorie] [varchar](max) NULL,

[debut_Validite] [varchar](max) NULL,

[fin_Validite] [varchar](max) NULL,

[numero] [int] NULL,

[rue] [varchar](max) NULL,

[codePostal] [int] NULL,

[ville] [varchar](max) NULL,

[pays] [varchar](max) NULL,

[immeuble] [varchar](max) NULL,

[interphone_Digicode] [int] NULL,

[code] [int] NULL,

[etage] [int] NULL,

[porte] [int] NULL,

CONSTRAINT [PK_adresse] PRIMARY KEY CLUSTERED

(

[id_Adresse] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[assurance]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[assurance](

[id_Assurance] [int] NOT NULL,

[Num_Securite] [varchar](max) NOT NULL,

[id_Patient] [int] NOT NULL,

[GIR] [varchar](max) NULL,

[APA] [varchar](max) NULL,

[Mutuelle_Caisse] [varchar](max) NULL,

[num_Adherant] [varchar](max) NULL,

[id_Adresse] [int] NULL,

CONSTRAINT [PK_assurance_1] PRIMARY KEY CLUSTERED

(

[id_Assurance] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tableau_Bord]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[tableau_Bord](

[id_Tab] [int] NOT NULL,

[id_Patient] [int] NOT NULL,

[id_Intervenant] [int] NULL,

[date] [varchar](max) NULL,

[elements_Importants] [varchar](max) NULL,

CONSTRAINT [PK_tableau_Bord] PRIMARY KEY CLUSTERED

(

[id_Tab] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_user_DMP_user_DMP]') AND parent_object_id = OBJECT_ID(N'[dbo].[user_DMP]'))

ALTER TABLE [dbo].[user_DMP] WITH CHECK ADD CONSTRAINT [FK_user_DMP_user_DMP] FOREIGN KEY([id_user])

REFERENCES [dbo].[user_DMP] ([id_user])

GO

ALTER TABLE [dbo].[user_DMP] CHECK CONSTRAINT [FK_user_DMP_user_DMP]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_authentification_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[authentification]'))

ALTER TABLE [dbo].[authentification] WITH CHECK ADD CONSTRAINT [FK_authentification_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[authentification] CHECK CONSTRAINT [FK_authentification_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_authentification_user_DMP]') AND parent_object_id = OBJECT_ID(N'[dbo].[authentification]'))

ALTER TABLE [dbo].[authentification] WITH CHECK ADD CONSTRAINT [FK_authentification_user_DMP] FOREIGN KEY([id_User])

REFERENCES [dbo].[user_DMP] ([id_user])

GO

ALTER TABLE [dbo].[authentification] CHECK CONSTRAINT [FK_authentification_user_DMP]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_evenement_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[evenement]'))

ALTER TABLE [dbo].[evenement] WITH CHECK ADD CONSTRAINT [FK_evenement_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[evenement] CHECK CONSTRAINT [FK_evenement_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_evenement_user_DMP]') AND parent_object_id = OBJECT_ID(N'[dbo].[evenement]'))

ALTER TABLE [dbo].[evenement] WITH CHECK ADD CONSTRAINT [FK_evenement_user_DMP] FOREIGN KEY([id_User])

REFERENCES [dbo].[user_DMP] ([id_user])

GO

ALTER TABLE [dbo].[evenement] CHECK CONSTRAINT [FK_evenement_user_DMP]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_patient_user_DMP]') AND parent_object_id = OBJECT_ID(N'[dbo].[patient]'))

ALTER TABLE [dbo].[patient] WITH CHECK ADD CONSTRAINT [FK_patient_user_DMP] FOREIGN KEY([id_User])

REFERENCES [dbo].[user_DMP] ([id_user])

GO

ALTER TABLE [dbo].[patient] CHECK CONSTRAINT [FK_patient_user_DMP]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_observations_Intervenant]') AND parent_object_id = OBJECT_ID(N'[dbo].[observations]'))

ALTER TABLE [dbo].[observations] WITH CHECK ADD CONSTRAINT [FK_observations_Intervenant] FOREIGN KEY([id_Intervenant])

REFERENCES [dbo].[Intervenant] ([id_Intervenant])

GO

ALTER TABLE [dbo].[observations] CHECK CONSTRAINT [FK_observations_Intervenant]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_observations_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[observations]'))

ALTER TABLE [dbo].[observations] WITH CHECK ADD CONSTRAINT [FK_observations_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[observations] CHECK CONSTRAINT [FK_observations_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_examen_Complementaire_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[examen_Complementaire]'))

ALTER TABLE [dbo].[examen_Complementaire] WITH CHECK ADD CONSTRAINT [FK_examen_Complementaire_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[examen_Complementaire] CHECK CONSTRAINT [FK_examen_Complementaire_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_traitements_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[traitements]'))

ALTER TABLE [dbo].[traitements] WITH CHECK ADD CONSTRAINT [FK_traitements_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[traitements] CHECK CONSTRAINT [FK_traitements_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_grille_AGGIR_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[grille_AGGIR]'))

ALTER TABLE [dbo].[grille_AGGIR] WITH CHECK ADD CONSTRAINT [FK_grille_AGGIR_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[grille_AGGIR] CHECK CONSTRAINT [FK_grille_AGGIR_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_plan_Aide_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[plan_Aide]'))

ALTER TABLE [dbo].[plan_Aide] WITH CHECK ADD CONSTRAINT [FK_plan_Aide_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[plan_Aide] CHECK CONSTRAINT [FK_plan_Aide_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_volet_Social_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[volet_Social]'))

ALTER TABLE [dbo].[volet_Social] WITH CHECK ADD CONSTRAINT [FK_volet_Social_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[volet_Social] CHECK CONSTRAINT [FK_volet_Social_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_adresse_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[adresse]'))

ALTER TABLE [dbo].[adresse] WITH CHECK ADD CONSTRAINT [FK_adresse_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[adresse] CHECK CONSTRAINT [FK_adresse_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_assurance_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[assurance]'))

ALTER TABLE [dbo].[assurance] WITH NOCHECK ADD CONSTRAINT [FK_assurance_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

NOT FOR REPLICATION

GO

ALTER TABLE [dbo].[assurance] CHECK CONSTRAINT [FK_assurance_patient]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tableau_Bord_Intervenant]') AND parent_object_id = OBJECT_ID(N'[dbo].[tableau_Bord]'))

ALTER TABLE [dbo].[tableau_Bord] WITH CHECK ADD CONSTRAINT [FK_tableau_Bord_Intervenant] FOREIGN KEY([id_Intervenant])

REFERENCES [dbo].[Intervenant] ([id_Intervenant])

GO

ALTER TABLE [dbo].[tableau_Bord] CHECK CONSTRAINT [FK_tableau_Bord_Intervenant]

GO

IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tableau_Bord_patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[tableau_Bord]'))

ALTER TABLE [dbo].[tableau_Bord] WITH CHECK ADD CONSTRAINT [FK_tableau_Bord_patient] FOREIGN KEY([id_Patient])

REFERENCES [dbo].[patient] ([id_Patient])

GO

ALTER TABLE [dbo].[tableau_Bord] CHECK CONSTRAINT [FK_tableau_Bord_patient]


1 plus précisément en XML-HL7 ou H’, standards d’échange de données médicales.

similaire:

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconPoste : Chef de Projet (moa) Etude et mise en œuvre de solutions...

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconPage 51 : Export/Import du certificat serveur vers un serveur iis 5

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers icon1 Introduction à vb 2005
«Applications Consoles, Windows, Smart Device, Web, Web Services, librairies, …»

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconInteropérabilité des services Web de type «Contract First» (priorité...

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconCompte rendu
«l’Eclairage Public» et «Aménagement des abords de la Mairie». Le Maire a donc établi deux nouvelles délibérations indispensables...

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconNote de l’auteur de la spécification : Cette spécification comprend...

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconI. web sémantique [1] Définition
«The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers...

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconLes catalogues des bibliothèques : du web invisible au web social

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconDirection de l’organisation des soins
«portefeuilles» validées, de l’échéancier, et d’un premier livrable sur les 4 actions jugées prioritaires dès 2016

Livrable a : Spécification des Services Web d’Import et d’Export de Dossiers iconTunisie web services Tunis, Tunisie –- octobre 2012, désembre








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com