-
-
Bonjour,
Je me permet de vous solliciter pour avoir de l’aide car j’essaye de récupérer le poids et le poids de naissance dans une fiche.
J’ai créer dans FS des valeurs “nombre réel” pour ces deux données, une fonction distante appelée via un bouton dans la fiche et le code suivant dans VS (code trouvé sur le forum):
protected override void RecupDPC(IExecutionContext context)
{
{
var lesDPCs = ModuleAPI.EasilyService.GetLastDPCs(EditionContext.ContextData.PatientId);
if (lesDPCs != null && lesDPCs.Any())
{
// Dernier Poids
var poidsDPC = lesDPCs.Where(p => p.Code == “Weight” || p.Code == System.Enum.GetName(typeof(Forms.Module.Contracts.PatientContextValueType), Module.Contracts.PatientContextValueType.Weight))
.OrderByDescending(p => p.DateReference).FirstOrDefault();if (poidsDPC != null)
this.nbDernierPoids.Value = (decimal)poidsDPC.ValeurNumerique;// Poids naissance
var PoidsNaissDPC = lesDPCs.Where(p => p.Code == “PDSNAI” || p.Code == System.Enum.GetName(typeof(Forms.Module.Contracts.PatientContextValueType), Module.Contracts.PatientContextValueType.PDSNAI))
.OrderByDescending(p => p.DateReference).FirstOrDefault();if (PoidsNaissDPC != null)
this.nbPoidsNaissance.Value = (decimal)PoidsNaissDPC.ValeurNumerique;}
}
}Mais pour le moment pour le dernier poids rien ne remonte et pour le poids de naissance seul 0 remonte alors que j’ai bien des données dans les DPC.
Je ne comprends pas ce que je loupe…
Merci pour votre aide
Charlotte
-
Bonjour,
Je vous ai fait la petite fonction pour récupérer les DPC :
protected override void GetDPCs(IExecutionContext context)
{
//Récup plusieurs DPCs en une requête
var multi_dpc = ModuleAPI.EasilyService.GetLastDPCs(new Module.Contracts.PatientContextValueType[]
{
Module.Contracts.PatientContextValueType.Weight,
Module.Contracts.PatientContextValueType.PDSD,
Module.Contracts.PatientContextValueType.Size,
Module.Contracts.PatientContextValueType.PDSNAI
});if (multi_dpc != null)
{
//Récupération DPC Poids
if (multi_dpc.Any(x => x.Code == “PDS” || x.Code == “PDSD”))
{
var dpc_poids = multi_dpc.Where(x => x.Code == “PDS” || x.Code == “PDSD”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_poids != null)
{
this.nbDernierPoids.Value = (int)dpc_poids.ValeurNumerique;
}
}//Récupération DPC Poids naissance
if (multi_dpc.Any(x => x.Code == “PDSNAI”))
{
var dpc_poids_naissance = multi_dpc.Where(x => x.Code == “PDSNAI”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_poids_naissance != null)
{
this.nbPoidsNaissance.Value = (int)dpc_poids_naissance.ValeurNumerique;
}
}
}
}Joffrey
-
Merci de votre réponse rapide.
Seule problème je ne récupère que 0 dans mes champs…. je ne comprends pas, je vous joins un doc word avec les différents éléments en capture d’écran. J’ai surement loupé une étape mais je ne vois pas laquelle.
Merci encore
Charlotte
fichiers attachés:
You must be logged in to view attached files. -
Est-ce que vous avez essayé en remplaçant la conversion en int par decimal?
Joffrey
-
Ça fonctionne en effet pour le dernier poids par contre pas du tout pour le poids de naissance.
Je n’ai toujours que 0 qui redescend pourtant j’ai aussi modifié (int) par (decimal)Merci
-
Pour pouvoir récupérer la valeur de PDSNAI, il faudra faire :
this.nbPoidsNaissance.Value = (decimal)dpc_pdsnai.Valeur;Étrangement, la valeur n’est pas présente dans la donnée “ValeurNumerique”.
Joffrey
-
J’ai essayé la solution proposée sauf que malheureusement cela ne fonctionne pas car mon champs est une valeur numérique décimale et non une valeur texte donc ça me met un message d’erreur. (cf PJ)
Je ne peux convertir en texte cette données car j’en ai besoin dans plusieurs calculs après…
Sinon cette donnée est dans une autre fiche, en valeur calculée, pouvez vous me donner le code pour aller la récupérer si c’est possible?
Merci
fichiers attachés:
You must be logged in to view attached files. -
Pour convertir votre chaîne en decimal, vous pouvez utiliser le Decimal.TryParse() comme ci-dessous :
//Récupération DPC Poids naissance
if (multi_dpc.Any(x => x.Code == “PDSNAI”))
{
var dpc_poids_naissance = multi_dpc.Where(x => x.Code ==
“PDSNAI”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_poids_naissance != null)
{
decimal pdsNai;if (Decimal.TryParse(dpc_pdsnai.Valeur, out pdsNai))
{
this.nbPoidsNaissance.Value = pdsNai;
}
}
} -
Ça fonctionne parfaitement! Merci Joffrey!
Une dernière question sur les DPC. Je souhaiterai pouvoir récupérer les premières constantes prises par l’IDE à l’arrivée dans le service pour les rapatrier dans une fiche médicale. Comment faire pour récupérer uniquement les premières dans ce service et non dans l’ensemble des DPC?
Merci encore de votre aide
-
J’ai regardé l’objet DPC que la fonction GetLastDPCs() et on récupère bien pour chaque DPC, un intervenant Id, une date référence et une venue Id, après concernant le service on ne récupère rien.
Donc je pense qu’il est possible de récupérer les premières DPC saisies par un IDE et on pourrait même filtrer sur la venue.
Pour cela, il faudrait utiliser la méthode GetDPCs(), ensuite filtrer sur l’intervenant Id et la venue Id voulu et faire un tri ascendant sur la date de référence.
Cette méthode pourrait ressemble à ça en fonction de ce que vous voulez récupérer :
var dpcs = this.ModuleAPI.EasilyService.GetDPCs();
if(dpcs != null && dpcs.Any())
{
//Récupération des DPC saisies par l’utilisateur connecté
var dpcsSaisiesParIntervenant = dpcs.Where(x => x.IntervenantId == this.EditionContext.ContextData.UserId);if(dpcsSaisiesParIntervenant != null && dpcsSaisiesParIntervenant.Any() &&
!String.IsNullOrEmpty(this.EditionContext.ContextData.Venue))
{
Venue venueContexte = this.ModuleAPI.EasilyService.GetVenueByNumero(this.EditionContext.ContextData.Venue);if(venueContexte != null)
{
//Récupération des DPC saisies dans la venue du contexte par l’utilisateur connecté
var dpcsSaisiesParIntervenantDsVenue = dpcsSaisiesParIntervenant.Where(x => x.VenueId == venueContexte.Id);if(dpcsSaisiesParIntervenantDsVenue != null && dpcsSaisiesParIntervenantDsVenue.Any())
{
//Trie des DPCs par Date de référence
var dpcsSaisiesParIntervenantDsVenueTrierParDateReference = dpcsSaisiesParIntervenantDsVenue.OrderBy(x => x.DateReference);if(dpcsSaisiesParIntervenantDsVenueTrierParDateReference != null && dpcsSaisiesParIntervenantDsVenueTrierParDateReference.Any())
{
//Récupération DPC Poids
if (dpcsSaisiesParIntervenantDsVenueTrierParDateReference.Any(x => x.Code == “PDS” || x.Code == “PDSD”))
{
var dpc_poids = dpcsSaisiesParIntervenantDsVenueTrierParDateReference.Where(x => x.Code == “PDS” || x.Code == “PDSD”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_poids != null)
{
this.premier_poids_saisi_intervenant_venue.Value = (int)dpc_poids.ValeurNumerique;
}
}
}
}
}
}
}Joffrey
- Cette réponse a été modifiée le il y a 3 années et 9 mois par joffreygaro.
-
Merci Joffrey,
Cette option ne convient malheureusement pas à nos utilisateurs.
Est-il possible de rapatrier les dates et heures de saisie des DPC en même temps que la DPC?
Si oui quel code dois je ajouter à ma fonction actuelle (cf ci dessous)
Merci de ton aide
Charlotte
PS: Peux tu me dire, si tu sais, pourquoi la fonction pour récupérer la glycémie ne fonctionne pas?
Fonction actuelle:
protected override void RecupPremiereConstantes(IExecutionContext context)
{
//Récup plusieurs DPCs en une requête
var multi_dpc = ModuleAPI.EasilyService.GetLastDPCs(new Module.Contracts.PatientContextValueType[]
{
Module.Contracts.PatientContextValueType.Weight,
Module.Contracts.PatientContextValueType.PDSD,
Module.Contracts.PatientContextValueType.Size,
Module.Contracts.PatientContextValueType.TAID,
Module.Contracts.PatientContextValueType.TAMAX,
Module.Contracts.PatientContextValueType.TAMIN,
Module.Contracts.PatientContextValueType.PULS,
Module.Contracts.PatientContextValueType.TEMP,
Module.Contracts.PatientContextValueType.GLYC,
Module.Contracts.PatientContextValueType.SAO2});
if (multi_dpc != null)
{
//Récupération DPC Poids
if (multi_dpc.Any(x => x.Code == “PDS” || x.Code == “PDSD”))
{
var dpc_poids = multi_dpc.Where(x => x.Code == “PDS” || x.Code == “PDSD”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_poids != null)
{
this.nbPoids.Value = (decimal)dpc_poids.ValeurNumerique;
}
}
//Récupération DPC taille
if (multi_dpc.Any(x => x.Code == “TAI” || x.Code == “TAID”))
{
var dpc_taille = multi_dpc.Where(x => x.Code == “TAI” || x.Code == “TAID”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_taille != null)
{
this.nbTaille.Value = (decimal)dpc_taille.ValeurNumerique;
}
}
//Récupération DPC FC
if (multi_dpc.Any(x => x.Code == “PULS”))
{
var dpc_FC = multi_dpc.Where(x => x.Code == “PULS”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_FC != null)
{
this.nbFC.Value = (int)dpc_FC.ValeurNumerique;
}
}
//Récupération DPC TAS
if (multi_dpc.Any(x => x.Code == “TAMAX”))
{
var dpc_TAS = multi_dpc.Where(x => x.Code == “TAMAX”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_TAS != null)
{
this.nbTAS.Value = (int)dpc_TAS.ValeurNumerique;
}
}
//Récupération DPC TAD
if (multi_dpc.Any(x => x.Code == “TAMIN”))
{
var dpc_TAD = multi_dpc.Where(x => x.Code == “TAMIN”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_TAD != null)
{
this.nbTAD.Value = (int)dpc_TAD.ValeurNumerique;
}
}
//Récupération DPC TEMPERATURE
if (multi_dpc.Any(x => x.Code == “TEMP”))
{
var dpc_Temp = multi_dpc.Where(x => x.Code == “TEMP”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_Temp != null)
{
this.nbTemp.Value = (decimal)dpc_Temp.ValeurNumerique;
}
}
//Récupération DPC Glycémie
if (multi_dpc.Any(x => x.Code == “GLYC”))
{
var dpc_Glyc = multi_dpc.Where(x => x.Code == “GLYC”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_Glyc != null)
{
this.nbDextrommoll.Value = (decimal)dpc_Glyc.ValeurNumerique;
}
}
//Récupération DPC SAT
if (multi_dpc.Any(x => x.Code == “SAO2”))
{
var dpc_SAT = multi_dpc.Where(x => x.Code == “SAO2”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (dpc_SAT != null)
{
this.nbSat.Value = (int)dpc_SAT.ValeurNumerique;
}
}
}
} -
Bonjour,
Je me permet de relancer ce sujet car j’aimerai avoir la possibilité de recuperer les dates et heures de la dernière saisie des DPC que je recupère dans mes fiche. Cela est il possible et si oui que dois je rajouter à ma fonction.
Merci beaucoup
-
Bonjour,
Pour pouvoir récupérer la date, il te suffit d’utiliser la propriété “DateModification” et l’assigner à un champ date de ton formulaire, ci-dessous tu peux voir un exemple de son utilisation :
var poi = multi.Where(x => x.Code == “PDS” || x.Code == “PDSD”).OrderByDescending(p => p.DateReference).FirstOrDefault();
if (poi != null)
{
this.poids.Value = (decimal)poi.ValeurNumerique;
this.date_poids.Value = poi.DateModification;
}Joffrey
-
Et aussi pour la glycémie, vous pouvez remplacer dans votre code par le suivant :
//Récupération DPC Glycémie capillaire
if (multi_dpc.Any(x => x.Code == “GLYC”))
{
var dpc_Glyc = multi_dpc.Where(x => x.Code == “GLYC”)
.OrderByDescending(p => p.DateReference)
.FirstOrDefault();decimal glyc;
if (decimal.TryParse(dpc_Glyc.Valeur, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out glyc))
{
this.nbDextrommoll.Value = glyc;
}
}Joffrey
-
The forum ‘Aide aux développements avec FormsStudio’ is closed to new topics and replies.