• Как правильно работать с форматом HL7 в рамках .NET?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Я тоже не работал с HL7, но если просуммировать что нашел, то:
    - HL7 - Health Level 7
    - Это прикладной протокол (протокол приложений), как 7 уровень OSI. Описывает данные для приложения. Как например, HTTP - текстовый и ничего про TCP
    - Т.к. это стандарт, то есть множество реализаций (Version 2, Version 3, CDA, CDD и другие)
    - Предназначен для работы с медицинскими документами (электронный документооборот)

    Без этих всяких GPT нашел библиотеки:
    - clear-hl7-net - реализация Version 2.0 лежит на гитхабе для netstandard2.1 и net7.0
    - целая статья на хабре, в которой гора этих реализация

    Лично от меня: я бы не советовал браться за этот заказ - слишком велики риски и ответственность высокая (тут жизнь людей)
    Ответ написан
    2 комментария
  • Почему всё выводится в одну строку?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    Потому что Console.Write(ch);
    В консоли всего один курсор => после всех переносов будет всё в одну строку писаться.
    Ответ написан
  • Почему всё выводится в одну строку?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    не, ну ты мутишь..
    в коде:
    Console.Write(ch);а потом
    Console.WriteLine();
    taskA.Start();
    Console.WriteLine();
    taskB.Start();

    ... ты определись..
    в таске и бросай что то из https://habr.com/ru/articles/165597/

    P.S:
    Работает если просто вызвать, асинхронно тоже, но параллельно почему-то нет

    и не будет по сути - консоль (системы) последовательный процесс
    ... если ты осмыслил остальное, то обдумай что я говорю

    pps опробуй все тоже на winforms/wpf и так далее ( в разные окна вывода...
    а консоль то одна...
    можешь в линуксе проверить... (хоть в wsl...

    ppps хотя... консолью можно управлять и координатно (в соответствии с текущей размерностью)... (тот же мой любимый far это консольная программа)..
    но там точно уже не Console.WriteLine()...
    или winapi или линуксовые api... как то так...
    в винде far
    в линуксе - mc
    .. это консольные программы, оба проекта опенсорц ;)
    .. есть esc-последовательности для управления курсором.. думаю для простейшего прогресс-бара хватило бы.. иначе - апи ОС, примеры выше
    Ответ написан
    6 комментариев
  • Почему всё выводится в одну строку?

    @Stariyded
    Сетевой админ
    Потому что нигде в коде нет перевода строки
    Ответ написан
    4 комментария
  • Почему NGINX отдает не правильный сайт?

    @asmelnik
    1.
    include proxy_params;
    Это означае, что часть настроек берется из файла
    proxy_params
    2.
    А потом он отдает вам то, что висит на
    proxy_pass 127.0.0.1:33344
    Согласно дополнительным настройкам из
    proxy_params
    Укажете другое, будет открывать другое...
    Ответ написан
    Комментировать
  • Как передать в функцию значение переменной?

    IvanU7n
    @IvanU7n
    1) document.write ЕМНИП затирает документ, если её вызвать после завершения загрузки документа
    2) так и должно быть, т.к. console.log образно говоря средство отладки (т.е. показывает КОД), при выполнении всё будет правильно
    Ответ написан
    3 комментария
  • Правильно ли составлен IP план?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    По опыту, делить локальные вланы на что-то, меньшее /24 бессмысленно - проще нарезать на одинаковые куски, так не придётся составлять зубодробительные таблички вроде вашей.
    Ответ написан
    Комментировать
  • Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

    vabka
    @vabka Куратор тега Веб-разработка
    Токсичный шарпист
    Схема вполне рабочая и такой стек применяется во многих компаниях.
    Никаких проблем в C#, применительно к этой задаче я не вижу.
    Ответ написан
    1 комментарий
  • Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Подойдет! Бек можно писать на всем, что отдает JSON/HTML. Начиная от С, С++, PHP, Ruby, Java, Rust, C# и заканчивая Groovy, Clojure, NodeJS и прочими, прочими, прочими.
    Ответ написан
    8 комментариев
  • Какие есть решения для удалённого доступа к рабочему столу с поддержкой нескольких удаленных экранов?

    @efcadu
    Системный администратор
    Chrome Remote Desktop. Мониторы нельзя раскидывать по разным окнам, но можно из бокового меню быстро между ними переключаться. У меня на работе 4 монитора, для меня из дома подключатся - самое удобное решение.
    Нужна учетка Google.
    Ответ написан
    Комментировать
  • Какие есть решения для удалённого доступа к рабочему столу с поддержкой нескольких удаленных экранов?

    @okolosov
    Попробуй отечественный Getscreen, подключение через браузер, мониторы можно выбирать.
    Ответ написан
    Комментировать
  • Как в Git перенести закоммиченые изменения из одной ветки в другую?

    @sl0
    Всего 3 варианта:
    - rebase
    - merge
    - cherry-pick
    Последний скорей всего тебе не нужен.
    А вот с первыми двумя настоятельно рекомендую разобраться. Что делают, чем отличаются и т.д. Они постоянно нужны для работы с гитом, и стоит потратить время на их изучение, вместо того, чтобы просто тыкаться наугад по ответам из интернета.
    Ответ написан
    Комментировать
  • Как грамотно организовать хранение исходного кода и сборку NuGet-пакетов в Gitlab?

    @d-stream
    Готовые решения - не подаю, но...
    Ну хранить бинарные это в гитлабе - по мне не самая лучшая идея. Идеологически пакеты - это результаты а не исходный материал. Как один из вариантов - использовать внешнее хранилище. К примеру sonatype nexus. Притом он умеет и не только в .nuget. Бонусом - его умение полноценно поддерживать nuget-api. То есть не возникнет вопросов при использовании пакетов и восстановлении транзитивных зависимостей.
    Конечно в .nuspec можно и нужно заполнять честно Видимо да, корнем будет Company или нечто подобное для группы компаний.
    Дальше видимо отдельная ветвь нечто совсем общего для всех продуктов со своим ветвлением на lib/utils/helpers/etc и ветвления на продукты, где далее опять же нечто общее для всех версий и далее ветвление по версиям и дальше уже опять же modules/libs/utils

    (кстати внутреннюю делёжку можно подсмотреть со стороны самой структуры дерева в nuget (рекомендуемая структура target от ms)

    То бишь в итоге получится нечто типа такого:
    Brand
     - CommonBrandSubTree
       - *
     - Subbrands
       - SubbrandsCommon
         - * 
         - ProductX 
           - ProductCommon
           - *
         - ProductY 
           - ProductCommon
           - *
    ________
    * - это то самое lib/tools/frameworks/etc


    Притом не стоит бояться слишком разветвлённого дерева - хотя на первом этапе это и будет выглядеть чрезмерно переинженеренным. Зато потом не придётся его ломать и ветвить на ходу.

    Ну а смысл в общем-то есть: у среднего человека мгновенная память/восприятие способна охватить "за раз" 5-9 объектов и исходя из этого максимально комфортной структурой окажется дерево, где на каждом уровне будет видно где-то по 5-9 объектов.

    Естественно волшебных гениев не существует и самую идеальную структуру не создать. Но можно посмотреть на те же имена от ms - где более-менее просматривается что-то подобное, но с итерациями к подходу (ветвление по платформам, архитектурам начали появляться попозже и т.п.)

    с длиной имён путей/файлов - да можно огрести чуть дальше - на уровне сборки - win-раннеры не умеют в \\?\driveletter и воспользоваться вариантом длины пути в 32767 символов не выйдет...

    p.s. ну и по-любому морально стоит готовиться к какому-то кардинальному моменту, когда захочется начать новое дерево с нуля - этакую v.2.0 (возможно стартовав такое уже в другой компании))
    Ответ написан
    Комментировать
  • Определить победителя КНБ?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    (-1) % 3 = 2

    Это математическое определение вычетов по модулю. Все числа, которые отличаются на n, имеют одинаковый остаток по модулю n. Конфуз происходит из-за того, что операция взятия по модулю во многих языках программирования работает не так. Для отрицательных чисел она выдаст отрицательное значение, правда к которому можно прибавить n, что бы получить правильный модуль - число от 0 до n-1.

    Поэтому при реализации можно делать (a-b+3)%3 Или преобразовать, чтобы не было вычитания: b == (a+1)%3
    Ответ написан
    Комментировать
  • Как эффективно найти все объекты, у которых в названии есть все заданные слова?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Тут же можно за один проход по магазинам. Сначала пройдитесь по вашим комбинациям и сложите слова в хешмап "слово" -> список номеров пар, в которых оно есть.

    Потом для каждого магазина пометьте массив длиной сколько у вас пар тегов нулями. Потом по каждому слову пройдитесь и добавьте 1 к каждой паре в массив, в которой это слово всречается, используя мап из предыдущего пункта. Если где-то получили 2 в процессе, то этот магазин вам подходит.

    Если же вы можете один раз что-то предподсчитать для всех магазинов, то потом можно выполнять "запросы" даже не проходясь по всем магазинам.

    Можно по каждому тегу составить список магазинов, имеющих его в названии, упорядоченный как-то (допустим, по id магазинов). Эту структуру можно построить за один проход по всем магазинам и сохранить.

    Затем ваш запрос на пар тегов можно обрабатывать объеденяя и пересекая упорядоченные списки. Эти операции, как в сортировке слиянием, делаются за один проход по списку.

    В хужшем случае, где используется очень частый тег, обработка запроса будет почти как полный просмотр всех магазинов (даже если в ответ попадет их малая часть), но в среднем этот метод будет работать неплохо.
    Ответ написан
    Комментировать
  • Как эффективно найти все объекты, у которых в названии есть все заданные слова?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Конечно, есть. Можно увеличить скорость за счёт использования памяти.

    Например, можно сделать ассоциативный массив (словарь, хеш-таблица), в котором ключами будут отдельные слова ("строительный", "ремонта" и т.д.), а значениями будут списки магазинов, в которых данный ключ встречается. Тогда при поиске очередной пары слов нужно будет выделить два коротеньких списка и перебрать их, найдя общие элементы (т.е. магазины, в названии которых сразу оба слова).

    Если подумать, можно ещё что-нибудь наоптимизировать. Но это уже надо знать больше нюансов конкретно вашей задачи.
    Ответ написан
    Комментировать
  • Можно ли сделать вызов переменной защиты private через get; set?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    с помошью рефлексии можно сделать много. но зачем?
    Ответ написан
    Комментировать
  • Можно ли сделать вызов переменной защиты private через get; set?

    iversooon
    @iversooon
    Учу C# и вообще все, но все равно ничего не знаю
    если тебе нужно ограничить запись, тогда лучше так:
    public string Name { get; private set; }
    Ответ написан
    Комментировать
  • Выводит что y = ?, как исправить?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    x = -3.5308641975308643, y = -∞, z =93.25781896015157, r = 0.4

    "y" имеет значение "минус бесконечность"
    У вас просто в используемом шрифте нет нужного символа.
    Как исправить - фиг знает.
    Может у вас ошибка в формуле.
    Если это норма - просто проверяйте, является ли ваше число бесконечностью при помощи метода Double.IsInfinity, Double.IsPositiveInfinity, Double.IsNegativeInfinity
    Ответ написан
    5 комментариев